import { reqDzList,reqHighshowDzp,reqHuzhu, reqShaiList } from "../../api/dz"
import { getStorage } from "../../utils/storage"
import { env } from "../../utils/env";
import { checkLogin, toast } from "../../utils/extendApi";

// pages/order/list/index.js
Page({
  // 页面的初始数据
  data: {
    orderList: [1, 2, 3],
    dzList: [], // 商品列表数据
    count: 0,
    isFinish: false, // 判断数据是否加载完毕
    isLoading: false, // 判断数据是否记载完毕
    // 接口请求参数
    requestData: {
      page: 1, // 页码
      limit: 10, // 每页请求多少条数据
    },
    imgBaseURL: env.imgBaseURL,
  },

  // 获取商品列表的数据
  async getDzList() {

    // 数据真正请求中
    this.data.isLoading = true
      // 调用 API 获取数据
    const { data } = await reqShaiList(this.data.requestData)

    console.log('reqShaiList',data);
    // 数据加载完毕
    this.data.isLoading = false
    // 停止下拉刷新动画
    wx.stopPullDownRefresh();
    // 将返回的数据赋值给 data 中的变量
    this.setData({
      dzList:  [...this.data.dzList, ...data.list_data],
      count: data?.count
    })
  },

  // 互助操作
  async getHuzhu(uid) {
    if(!getStorage('userInfo')?.id) return
    // 数据真正请求中
    this.data.isLoading = true
      // 调用 API 获取数据
    const res = await reqHuzhu( { uid,z_uid:getStorage('userInfo').id } )
   
    console.log('getHuzhu',res);
  },


  saveImage: function(event) {
    const { index,uid } = event.currentTarget.dataset;
    this.getHuzhu(uid)
    const item = this.data.dzList[index];
     // 显示 loading
     wx.showLoading({
      title: '保存中...',
      mask: true, // 显示透明蒙层，防止触摸穿透
    });
    if (item.z_img) {
      wx.downloadFile({
        url: this.data.imgBaseURL + '/' + item.z_img,
        success: function(res) {
          if (res.statusCode === 200) {
            wx.saveImageToPhotosAlbum({
              filePath: res.tempFilePath,
              success: function() {
                wx.hideLoading(); // 隐藏 loading
                setTimeout( () => {
                  toast( {title:'复制成功 请去拼多多助力'} )
                },100);
               
              },
              fail: function(err) {
                wx.hideLoading(); // 隐藏 loading
                setTimeout( () => {
                  toast( {title:'图片保存失败'} )
                },100);
              }
            });
          }
        },
        fail: function(err) {
          wx.hideLoading(); // 隐藏 loading
          console.error('下载图片失败:', err);
          setTimeout( () => {
            toast( {title:'下载图片失败'} )
          },100);
         
        }
      });
    } else {
      wx.hideLoading(); // 隐藏 loading
      setTimeout( () => {
        toast( {title:'无图片可保存'} )
      },100);

     
    }
  },
  copyZCode: function(event) {
    const { index,uid } = event.currentTarget.dataset;
    this.getHuzhu(uid)
    const zCode = this.data.dzList[index].z_code;
    wx.setClipboardData({
      data: zCode,
      success: function() {
        setTimeout( () => {
          toast( {title:'复制成功 请去拼多多助力'} )
        },100);
      },
      fail: function(err) {
        console.error('复制 z_code 失败:', err);
        setTimeout( () => {
          toast( {title:'复制失败'} )
        },100);
      }
    });
  },

  // 监听页面的下拉刷新
  onPullDownRefresh() {
    this.resetList()
  },
  resetList() {
    // 将数据进行重置
    this.setData({
      dzList: [],
      count: 0,
      isFinish: false,
      requestData: { ...this.data.requestData, page: 1 }
    })
    // 重新获取列表数据
    this.getDzList()
  },



  // 监听页面的上拉操作
  onReachBottom() {
    // 判断是否加载完毕，如果 isLoading 等于 true
    // 说明数据还没有加载完毕，不加载下一页数据
    if (this.data.isLoading) return
    const { count, dzList, requestData } = this.data
    let { page } = this.data.requestData

      // 判断数据是否加载完毕
    if (count === dzList.length) {
       // 如果相等，数据数据加载完毕
       // 如果数据加载完毕，需要给用户提示，同时不继续加载下一个数据
       this.setData({
         isFinish: true
       })
       return
     }
    // 页码 + 1
    this.setData({
      requestData: { ...this.data.requestData, page: page + 1 }
    })
    // 重新发送请求
    this.getDzList()
  },

  // 处理按钮点击事件
  handleButtonClick() {
    this.showDialog()
  },



  // 显示对话框
  showDialog() {
    this.selectComponent('#formDialog').show();
  },

  // 隐藏对话框
  hideDialog() {
    this.selectComponent('#formDialog').hide();
    
  },

  // 确认提交
  async onConfirm(event) {
    if (!checkLogin()) return
    console.log('onConfirm',event);
    const { s_code, z_img, remark } = event.detail;

    let new_z_img = '';
    if (z_img?.[0]?.url) {
      new_z_img = z_img?.[0]?.url.replace(`${env.imgBaseURL}/`, '');
    }
    const res = await reqHighshowDzp({ title: remark, s_img:new_z_img,uid:getStorage('userInfo').id });
    

    // 提交成功后隐藏对话框
    this.hideDialog();
    this.resetList()
  },

  // 取消
  onCancel() {
    this.hideDialog();
  },


     // 生命周期函数--监听页面加载
  onLoad(options) {
    // 获取商品列表的数据
    this.getDzList()
  }
 
})


